<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
//Ultima verificacion: 01-03-2015
class Modulo extends CI_Controller {
	//Metodo constructor de la clase
	function __construct(){
		parent::__construct();
	}
	
	//Este metodo no se puede llamar con ajax
	//Muestra un listado con todos los modulos activos o inactivos pero NO los borrados (-1) de una asignatura en particular
	//El resto de los parametros solo se usa para cuando apretas consultar asignaturas se mantengan los filtros aplicados alli.
	function consultar($idAsignatura=null, $idCicloLectivo=null, $idTurno=null, $idCurso=null, $idDivision=null){
		//Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){
			//Segunda comprobacion: Que idAsignatura pasado sea numerico y mayor que cero. Ademas que idCicloLectivo pasado sea numerico y mayor o igual que cero. Lo mismo para el turno, el curso y la division
			if(is_numeric($idAsignatura) && $idAsignatura>0 && is_numeric($idCicloLectivo) && $idCicloLectivo>=0 && is_numeric($idTurno) && $idTurno>=0 && is_numeric($idCurso) && $idCurso>=0 && is_numeric($idDivision) && $idDivision>=0){
				//Cargo el modelo donde estan los datos de las asignaturas
				$this->load->model('m_asignatura');
				
				//Busco a la asignatura para comprobar que existe
				$asignatura = $this->m_asignatura->get($idAsignatura);
				
				//Cargo el modelo donde estan los datos de los ciclos lectivos
				$this->load->model('m_ciclo_lectivo');
				
				//Busco al ciclo lectivo para comprobar que existe
				$cicloLectivo = $this->m_ciclo_lectivo->get($idCicloLectivo);
				
				//Cargo el modelo donde estan los datos de los turnos
				$this->load->model('m_turno');
				
				//Busco al turno para comprobar que existe
				$turno = $this->m_turno->get($idTurno);
				
				//Cargo el modelo donde estan los datos de los cursos
				$this->load->model('m_curso');
				
				//Busco al turno para comprobar que existe
				$curso = $this->m_curso->get($idCurso);
				
				//Cargo el modelo donde estan los datos de las divisiones
				$this->load->model('m_division');
				
				//Busco a la division para comprobar que existe
				$division = $this->m_division->get($idDivision);
				
				//Tercera comprobacion: Que la asignatura sea existente. Que el ciclo lectivo pasado por la url sea existente o bien el id sea igual a cero. Lo mismo para el turno, curso y division
				if($asignatura->num_rows() == 1 && ($cicloLectivo->num_rows() == 1 || $idCicloLectivo==0) && ($turno->num_rows() == 1 || $idTurno==0) && ($curso->num_rows() == 1 || $idCurso==0) && ($division->num_rows() == 1 || $idDivision==0)){
					//Le paso a la vista el id de la asignatura pasada por la url
					$datos['idAsignaturaSel'] = $idAsignatura;
					
					//Le paso a la vista el id del ciclo lectivo pasado por la url
					$datos['idCicloLectivoSel'] = $idCicloLectivo;
					
					//Le paso a la vista el id del turno pasado por la url
					$datos['idTurnoSel'] = $idTurno;
					
					//Le paso a la vista el id del curso pasado por la url
					$datos['idCursoSel'] = $idCurso;
					
					//Le paso a la vista el id de la division pasado por la url
					$datos['idDivisionSel'] = $idDivision;
					
					//Le paso a la vista la asignatura
					$datos['asignaturaSel'] = $asignatura;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Restricciones a los modulos segun la asignatura filtrada
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					$restriccion = " AND modulo.idAsignatura=".$idAsignatura;
					
					//Cargo el modelo donde estan los datos de los modulos registrados para pedirle un listado con todos ellos
					$this->load->model('m_modulo');
					
					//Busco todos los modulos activos e inactivos segun las restricciones
					$listadoModulos = $this->m_modulo->buscar($restriccion);
					
					//Le paso el listado de todos los modulos a la vista para que los muestre en una tabla
					$datos['modulos'] = $listadoModulos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo la vista donde se muestra la tabla de modulos y la guardo en una variable para pasarsela a la vista principal
					$datosPrincipal['vista'] = $this->load->view('v_modulos', $datos, true);
					
					//Cargo la vista principal con los datos de la vista consultar modulos
					$this->load->view('v_sistema', $datosPrincipal);
				} else {
					//El o los registros no existen.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
					redirect(site_url("inicio"));
				}
			} else {
				//Los parametros pasados no son validos para consultar los registros.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
	
	//Este metodo solo se puede llamar con ajax
	//Sirve para eliminar el modulo pasado por la url
	//El segundo, tercer, cuarto, quinto y sexto parametro indica los criterios para filtrar los modulos en el resultado
	function eliminar($idModulo=null, $idCicloLectivo=null, $idTurno=null, $idCurso=null, $idDivision=null, $idAsignatura=null){
		//Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){
			//Segunda comprobacion: Que idModulo e idAsignatura pasados sean numericos y mayor que cero. Ademas que idCicloLectivo pasado sea numerico y mayor o igual que cero. Lo mismo para el idTurno, idCurso e idDivision.
			if(is_numeric($idModulo) && $idModulo>0 && is_numeric($idAsignatura) && $idAsignatura>0 && is_numeric($idCicloLectivo) && $idCicloLectivo>=0 && is_numeric($idTurno) && $idTurno>=0 && is_numeric($idCurso) && $idCurso>=0 && is_numeric($idDivision) && $idDivision>=0){
				//Cargo el modelo donde estan los datos de los modulos registrados
				$this->load->model('m_modulo');
				
				//Busco al modulo que hay que eliminar para comprobar que existe
				$modulo = $this->m_modulo->get($idModulo);
				
				//Cargo el modelo donde estan los datos de las asignaturas registradas
				$this->load->model('m_asignatura');
				
				//Busco a la asignatura para comprobar que exista
				$asignatura = $this->m_asignatura->get($idAsignatura);
				
				//Cargo el modelo donde estan los datos de los ciclos lectivos
				$this->load->model('m_ciclo_lectivo');
				
				//Busco al ciclo lectivo para comprobar que existe
				$cicloLectivo = $this->m_ciclo_lectivo->get($idCicloLectivo);
				
				//Cargo el modelo donde estan los datos de los turnos
				$this->load->model('m_turno');
				
				//Busco al turno para comprobar que existe
				$turno = $this->m_turno->get($idTurno);
				
				//Cargo el modelo donde estan los datos de los cursos registrados
				$this->load->model('m_curso');
				
				//Busco al curso para comprobar que existe
				$curso = $this->m_curso->get($idCurso);
				
				//Cargo el modelo donde estan los datos de las divisiones registradas
				$this->load->model('m_division');
				
				//Busco a la division para comprobar que existe
				$division = $this->m_division->get($idDivision);
				
				//Tercera comprobacion: Que el modulo y la asignatura sean existentes. Ademas que el ciclo lectivo pasado por la url sea existente, o bien el ciclo lectivo sea cero. Lo mismo para el turno, curso y division
				if($modulo->num_rows() == 1 &&  $asignatura->num_rows() == 1 && ($cicloLectivo->num_rows() == 1 || $idCicloLectivo==0) && ($turno->num_rows() == 1 || $idTurno==0) && ($curso->num_rows() == 1 || $idCurso==0) && ($division->num_rows() == 1 || $idDivision==0)){
					//Elimino al modulo pasado por la url
					$respuesta = $this->m_modulo->eliminar($idModulo, $this->session->userdata('idUsuarioLog'));
					
					//Le paso a la vista el id de la asignatura pasada por la url
					$datos['idAsignaturaSel'] = $idAsignatura;
					
					//Le paso a la vista el id del ciclo lectivo pasado por la url
					$datos['idCicloLectivoSel'] = $idCicloLectivo;
					
					//Le paso a la vista el id del turno pasado por la url
					$datos['idTurnoSel'] = $idTurno;
					
					//Le paso a la vista el id del curso pasado por la url
					$datos['idCursoSel'] = $idCurso;
					
					//Le paso a la vista el id de la division pasado por la url
					$datos['idDivisionSel'] = $idDivision;
					
					//Le paso a la vista la asignatura
					$datos['asignaturaSel'] = $asignatura;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Restricciones a los modulos segun la asignatura filtrada
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					$restriccion = " AND modulo.idAsignatura=".$idAsignatura;
					
					//Cargo el modelo donde estan los datos de los modulos registrados para pedirle un listado con todos ellos
					$this->load->model('m_modulo');
					
					//Busco todos los modulos activos e inactivos segun las restricciones
					$listadoModulos = $this->m_modulo->buscar($restriccion);
					
					//Le paso el listado de todos los modulos a la vista para que los muestre en una tabla
					$datos['modulos'] = $listadoModulos;
					
					//Cargo la vista donde se muestra la tabla de modulos
					$this->load->view('v_modulos', $datos);
				} else {
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					echo("No existe el registro seleccionado para borrar.");
				}
			} else {
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				echo("No se ha pasado los parametros necesarios para borrar un registro.");
			}			
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			echo("No tiene permiso para borrar un registro.");
		}
	}
	
	//Esto metodo no se puede llamar con ajax
	//Abre la pantalla con el formulario para crear un modulo nuevo
	function abrirPantallaCrear($idCicloLectivo=null, $idTurno=null, $idCurso=null, $idDivision=null, $idAsignatura=null){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){
			//Segunda comprobacion: Que idCicloLectivo pasado sea numerico y mayor o igual que cero. Lo mismo para el turno, curso y division
			//Ademas que idAsignatura sea numerico y mayor que cero.
			if(is_numeric($idAsignatura) && $idAsignatura>0 && is_numeric($idCicloLectivo) && $idCicloLectivo>=0 && is_numeric($idTurno) && $idTurno>=0 && is_numeric($idCurso) && $idCurso>=0 && is_numeric($idDivision) && $idDivision>=0){
				//Cargo el modelo donde estan los datos de las asignaturas registradas
				$this->load->model('m_asignatura');
				
				//Busco a la asignatura para comprobar que exista
				$asignatura = $this->m_asignatura->get($idAsignatura);
				
				//Cargo el modelo donde estan los datos de los ciclos lectivos
				$this->load->model('m_ciclo_lectivo');
				
				//Busco al ciclo lectivo para comprobar que exista
				$cicloLectivo = $this->m_ciclo_lectivo->get($idCicloLectivo);
				
				//Cargo el modelo donde estan los datos de los turnos
				$this->load->model('m_turno');
				
				//Busco al turno para comprobar que exista
				$turno = $this->m_turno->get($idTurno);
				
				//Cargo el modelo donde estan los datos de los cursos
				$this->load->model('m_curso');
				
				//Busco al curso para comprobar que exista
				$curso = $this->m_curso->get($idCurso);
				
				//Cargo el modelo donde estan los datos de las divisiones
				$this->load->model('m_division');
				
				//Busco a la division para comprobar que exista
				$division = $this->m_division->get($idDivision);
				
				//Tercera comprobacion: Que la asignatura sea existente. Ademas que el ciclo lectivo pasado por la url sea existente o bien el id sea igual a cero. Lo mismo para el turno, curso y division
				if($asignatura->num_rows() == 1 && ($cicloLectivo->num_rows() == 1 || $idCicloLectivo==0) && ($turno->num_rows() == 1 || $idTurno==0) && ($curso->num_rows() == 1 || $idCurso==0) && ($division->num_rows() == 1 || $idDivision==0)){
					//Le paso a la vista el id de la asignatura pasada por la url
					$datos['idAsignaturaSel'] = $idAsignatura;
					
					//Le paso a la vista el id del ciclo lectivo pasado por la url
					$datos['idCicloLectivoSel'] = $idCicloLectivo;
					
					//Le paso a la vista el id del turno pasado por la url
					$datos['idTurnoSel'] = $idTurno;
					
					//Le paso a la vista el id del curso pasado por la url
					$datos['idCursoSel'] = $idCurso;
					
					//Le paso a la vista el id de la division pasado por la url
					$datos['idDivisionSel'] = $idDivision;
					
					//Le paso a la vista la asignatura
					$datos['asignaturaSel'] = $asignatura;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de los tipos de modulos
					$this->load->model('m_tipo_modulo');
					
					//Busco todos los tipos de modulos activos
					$listadoTiposModulos = $this->m_tipo_modulo->buscarActivos();
					
					//Le paso el listado de todos los tipos de modulos a la vista para que los muestre en un combo seleccionable
					$datos['tiposModulos'] = $listadoTiposModulos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de los espacios escolares
					$this->load->model('m_espacio_escolar');
					
					//Busco todos los espacios escolares activos
					$listadoEspaciosEscolares = $this->m_espacio_escolar->buscarActivos();
					
					//Le paso el listado de todos los espacios escolares a la vista para que los muestre en un combo seleccionable
					$datos['espaciosEscolares'] = $listadoEspaciosEscolares;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Busco todos los turnos activos
					$listadoTurnos = $this->m_turno->buscarActivos();
					
					//Le paso el listado de todos los turnos a la vista para que los muestre en un combo seleccionable
					$datos['turnos'] = $listadoTurnos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo la vista donde se muestra el formulario para crear un modulo y la guardo en una variable para pasarsela a la vista principal
					$datosPrincipal['vista'] = $this->load->view('v_modulos_crear', $datos, true);
					
					//Cargo la vista principal con los datos de la vista para crear un modulo
					$this->load->view('v_sistema', $datosPrincipal);
				} else {
					//El registro seleccionado no existe
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
					redirect(site_url("inicio"));
				}
			} else {
				//No se han pasado los parametros minimos necesarios para crear un registro
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
	
	//Esto metodo no se puede llamar con ajax
	//Este metodo crea realmente el modulo. La respuesta se muestra en un iframe dentro del formulario
	function crear($idAsignatura=null){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){	   
			//Segunda comprobacion: Que se haya pasado por post la cantidad, tipo de modulo, si es dividible y el estado del modulo a crear.
			//Ademas que se haya pasado por la url el id de la asignatura a crearle modulos
			if(is_numeric($idAsignatura) && $idAsignatura>0 && is_numeric($this->input->post('cantidad',true)) && $this->input->post('cantidad',true)>0 && is_numeric($this->input->post('tipoModulo',true)) && $this->input->post('tipoModulo',true)>0 && ($this->input->post('dividible',true) == '1' || $this->input->post('dividible',true) == '0') && ($this->input->post('estado',true) == '1' || $this->input->post('estado',true) == '0')){		
				//Cargo el modelo donde estan los datos de las asignaturas
				$this->load->model('m_asignatura');
				
				//Busco a la asignatura para comprobar que existe
				$asignatura = $this->m_asignatura->get($idAsignatura);
				
				//Cargo el modelo donde estan los datos de los tipos de modulos
				$this->load->model('m_tipo_modulo');
				
				//Busco al tipo de modulo para comprobar que existe
				$tipoModulo = $this->m_tipo_modulo->get($this->input->post('tipoModulo',true));
				
				//Cargo el modelo donde estan los datos de los turnos
				$this->load->model('m_turno');
				
				//Busco al turno para comprobar que exista
				$turno = $this->m_turno->get($this->input->post('turno',true));
				
				//Cargo el modelo donde estan los datos de los espacios escolares
				$this->load->model('m_espacio_escolar');
				
				//Busco al espacio escolar para comprobar que exista
				$espacioEscolar = $this->m_espacio_escolar->get($this->input->post('espacioEscolar',true));
				
				//Tercera comprobacion: Que la asignatura y el modulo pasado por la url sean existentes. Que el turno sea existente o bien el id igual a cero. Idem para el espacio escolar
				if($asignatura->num_rows() == 1 && $tipoModulo->num_rows() == 1 && ($turno->num_rows() == 1 || $this->input->post('turno',true)==0) && ($espacioEscolar->num_rows() == 1 || $this->input->post('espacioEscolar',true)==0)){
					//Cargo el modelo donde estan los datos de los modulos
					$this->load->model('m_modulo');
					
					if($this->input->post('turno',true)>0)
						$idTurnoFinal = $this->input->post('turno',true);
					else
						$idTurnoFinal = $asignatura->row()->idTurno;
					
					if($this->input->post('espacioEscolar',true)>0)
						$idEspacioEscolarFinal = $this->input->post('espacioEscolar',true);
					else
						$idEspacioEscolarFinal = $asignatura->row()->idEspacioEscolar;
					
					$resultado=0;
					for ($i=0;$i<$this->input->post('cantidad',true);$i++){
						//Creamos el modulo
						$resultado += $this->m_modulo->crear($idAsignatura, $this->input->post('tipoModulo',true), $idEspacioEscolarFinal, $idTurnoFinal, $this->input->post('dividible',true), $this->input->post('descripcion',true), $this->input->post('estado',true), $this->session->userdata('idUsuarioLog'));
					}
					
					if($resultado == $this->input->post('cantidad',true)){
						if($this->input->post('cantidad',true) == 1)
							echo("<script> alert('El m\u00f3dulo de: ".$tipoModulo->row()->nombre." se ha creado correctamente.');</script>");
						else
							echo("<script> alert('Los ".$this->input->post('cantidad',true)." m\u00f3dulos de: ".$tipoModulo->row()->nombre." se han creado correctamente.');</script>");
					}else{
						echo("<script> alert('El m\u00f3dulo de: ".$tipoModulo->row()->nombre." no se ha creado. Ha habido un error.');</script>");
					}
				} else {
					//Los registros no existen.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
				}
			} else {
				//No se han pasado los parametros minimos necesarios para crear un registro.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
		}
	}
	
	//Esto metodo no se puede llamar con ajax
	//Este metodo abre la pantalla con los datos del modulo pasado por la url
	function abrirPantallaModificar($idModulo=null, $idCicloLectivo=null, $idTurno=null, $idCurso=null, $idDivision=null, $idAsignatura=null){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){
			//Segunda comprobacion: Que idModulo e idAsignatura pasados sean numericos y mayores que cero. Ademas que idCicloLectivo pasado sea numerico y mayor o igual que cero. Lo mismo para el turno, curso y division.
			if(is_numeric($idModulo) && $idModulo>0 && is_numeric($idAsignatura) && $idAsignatura>0 && is_numeric($idCicloLectivo) && $idCicloLectivo>=0 && is_numeric($idTurno) && $idTurno>=0 && is_numeric($idCurso) && $idCurso>=0 && is_numeric($idDivision) && $idDivision>=0){
				//Cargo el modelo donde estan los datos de los modulos registrados
				$this->load->model('m_modulo');
				
				//Busco al modulo que hay que modificar
				$modulo = $this->m_modulo->get($idModulo);
				
				//Cargo el modelo donde estan los datos de las asignaturas registradas
				$this->load->model('m_asignatura');
				
				//Busco a la asignatura para comprobar que existe
				$asignatura = $this->m_asignatura->get($idAsignatura);
				
				//Cargo el modelo donde estan los datos de los ciclos lectivos
				$this->load->model('m_ciclo_lectivo');
				
				//Busco al ciclo lectivo para comprobar que existe
				$cicloLectivo = $this->m_ciclo_lectivo->get($idCicloLectivo);
				
				//Cargo el modelo donde estan los datos de los turnos
				$this->load->model('m_turno');
				
				//Busco al turno para comprobar que existe
				$turno = $this->m_turno->get($idTurno);
				
				//Cargo el modelo donde estan los datos de los cursos registrados
				$this->load->model('m_curso');
				
				//Busco al curso para comprobar que existe
				$curso = $this->m_curso->get($idCurso);
				
				//Cargo el modelo donde estan los datos de las divisiones registradas
				$this->load->model('m_division');
				
				//Busco a la division para comprobar que existe
				$division = $this->m_division->get($idDivision);
				
				//Tercera comprobacion: Que el modulo y la asignatura sean existentes. Ademas que el ciclo lectivo pasado por la url sea existente o bien el id sea igual a cero. Lo mismo para el turno, curso y division.
				if($modulo->num_rows() == 1 && $asignatura->num_rows() == 1 && ($cicloLectivo->num_rows() == 1 || $idCicloLectivo==0) && ($turno->num_rows() == 1 || $idTurno==0) && ($curso->num_rows() == 1 || $idCurso==0) && ($division->num_rows() == 1 || $idDivision==0)){
					//Le paso el modulo a modificar a la vista
					$datos['moduloSel'] = $modulo;
					
					//Le paso a la vista el id de la asignatura pasada por la url
					$datos['idAsignaturaSel'] = $idAsignatura;
					
					//Le paso a la vista el id del ciclo lectivo pasado por la url
					$datos['idCicloLectivoSel'] = $idCicloLectivo;
					
					//Le paso a la vista el id del turno pasado por la url
					$datos['idTurnoSel'] = $idTurno;
					
					//Le paso a la vista el id del curso pasado por la url
					$datos['idCursoSel'] = $idCurso;
					
					//Le paso a la vista el id de la division pasado por la url
					$datos['idDivisionSel'] = $idDivision;
					
					//Le paso a la vista la asignatura
					$datos['asignaturaSel'] = $asignatura;
					
					//Busco al modulo siguiente del que hay que modificar
					$idModuloSig = $this->m_modulo->getContiguo($idModulo, 1, $idAsignatura);
					
					//Le paso el modulo siguiente del que hay que modificar a la vista
					$datos['idModuloSig'] = $idModuloSig;
					
					//Busco al modulo anterior del que hay que modificar
					$idModuloAnt = $this->m_modulo->getContiguo($idModulo, -1, $idAsignatura);
					
					//Le paso el modulo anterior del que hay que modificar a la vista
					$datos['idModuloAnt'] = $idModuloAnt;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de los tipos de modulos
					$this->load->model('m_tipo_modulo');
					
					//Busco todos los tipos de modulos activos e inactivos
					$listadoTiposModulos = $this->m_tipo_modulo->buscar();
					
					//Le paso el listado de todos los tipos de modulos a la vista para que los muestre en un combo seleccionable
					$datos['tiposModulos'] = $listadoTiposModulos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de los espacios escolares
					$this->load->model('m_espacio_escolar');
					
					//Busco todos los espacios escolares activos e inactivos
					$listadoEspaciosEscolares = $this->m_espacio_escolar->buscar();
					
					//Le paso el listado de todos los espacios escolares a la vista para que los muestre en un combo seleccionable
					$datos['espaciosEscolares'] = $listadoEspaciosEscolares;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Busco todos los turnos activos e inactivos
					$listadoTurnos = $this->m_turno->buscar();
					
					//Le paso el listado de todos los turnos a la vista para que los muestre en un combo seleccionable
					$datos['turnos'] = $listadoTurnos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo la vista donde se muestra el formulario para modificar un modulo y la guardo en una variable para pasarsela a la vista principal
					$datosPrincipal['vista'] = $this->load->view('v_modulos_modificar',$datos, true);
					
					//Cargo la vista principal con los datos de la vista para modificar un modulo
					$this->load->view('v_sistema', $datosPrincipal);
				} else {
					//El registro no existe.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
					redirect(site_url("inicio"));
				}
			} else {
				//Los parametros pasados no son validos para modificar un registro.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
	
	//Este metodo no se puede llamar con ajax
	//Este metodo realmente modifica los datos de un modulo
	function modificar($idModulo=null){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){	   
			//Segunda comprobacion: Que se haya pasado por post el tipo de modulo, si es dividible y el estado del modulo a modificar. 
			//Ademas que se haya pasado por la url el id del modulo a modificar
			if(is_numeric($idModulo) && $idModulo>0 && 
			   is_numeric($this->input->post('tipoModulo',true)) && $this->input->post('tipoModulo',true)>0 && 
			   is_numeric($this->input->post('diaAsignado',true)) && $this->input->post('diaAsignado',true)>=0 && $this->input->post('diaAsignado',true)<=7 && 
			   is_numeric($this->input->post('periodoAsignado',true)) && $this->input->post('periodoAsignado',true)>=-1 && $this->input->post('periodoAsignado',true)<=7 && 
			   ($this->input->post('dividible',true) == '1' || $this->input->post('dividible',true) == '0') && 
			   ($this->input->post('estado',true) == '1' || $this->input->post('estado',true) == '0')){		
				//Cargo el modelo donde estan los datos de los modulos
				$this->load->model('m_modulo');
				
				//Busco al modulo que hay que modificar
				$modulo = $this->m_modulo->get($idModulo);
				
				//Cargo el modelo donde estan los datos de los tipos de modulos
				$this->load->model('m_tipo_modulo');
				
				//Busco al tipo de modulo para comprobar que realmente exista
				$tipoModulo = $this->m_tipo_modulo->get($this->input->post('tipoModulo',true));
				
				//Cargo el modelo donde estan los datos de los turnos
				$this->load->model('m_turno');
				
				//Busco al turno para comprobar que exista
				$turno = $this->m_turno->get($this->input->post('turno',true));
				
				//Cargo el modelo donde estan los datos de los espacios escolares
				$this->load->model('m_espacio_escolar');
				
				//Busco al espacio escolar para comprobar que exista
				$espacioEscolar = $this->m_espacio_escolar->get($this->input->post('espacioEscolar',true));
				
				//Tercera comprobacion: Que el modulo y el tipo de modulo pasado por la url sean existentes. Que el turno sea existente o bien el id igual a cero. Idem para el espacio escolar
				if($modulo->num_rows() == 1 && $tipoModulo->num_rows() == 1 && ($turno->num_rows() == 1 || $this->input->post('turno',true)==0) && ($espacioEscolar->num_rows() == 1 || $this->input->post('espacioEscolar',true)==0)){
					//Modificamos el modulo
					$resultado = $this->m_modulo->modificar($idModulo, $this->input->post('tipoModulo',true), $this->input->post('espacioEscolar',true), $this->input->post('turno',true), $this->input->post('diaAsignado',true), $this->input->post('periodoAsignado',true), $this->input->post('dividible',true), $this->input->post('descripcion',true), $this->input->post('estado',true));
					
					if($resultado == 1){
						//Cargo el modelo donde estan los datos del timeline para cargar la novedad.
						$this->load->model('m_timeline');
						
						//Creamos el registro de la novedad. TipoOperacion, idTablaOrigen, idRegistroOrigen, idTablaDestino, idRegistroDestino, fechaPasada, fechaFutura, estado
						$this->m_timeline->crear(2, 8, $idModulo, 11, $modulo->row()->idDivision, date("Y-m-d H:i:s"), null, 1);
						
						echo("<script> alert('El m\u00f3dulo de: ".$tipoModulo->row()->nombre." se ha modificado correctamente.');</script>");
					}else{
						echo("<script> alert('El m\u00f3dulo de: ".$tipoModulo->row()->nombre." no se ha modificado. Ha habido un error o los datos permanecieron iguales.');</script>");
					}
				} else {
					//El registro no existe.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
					redirect(site_url("inicio"));
				}
			} else {
				//Los parametros pasados no son validos para modificar un registro.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();			
		}
	}
}